package szwolaiyun.paireach.com.szwolaizhuang.net;

/**
 * 运单接口中心
 */
public interface WayBillInterface {
    /**
     * 根据手机号获取运单号，如果没有运单号，该接口返回的运单号是0
     *
     * @param phoneNumber 手机号
     */
    void getOrderNumber(String phoneNumber);

    /**
     * 根据运单号获取当前单据的状态，返回运单状态字符串
     *
     * @param orderNumber 运单号
     */
    void getOrderHandlingState(String orderNumber);

    /**
     * 根据手机号码获取登录人的所有运单
     *
     * @param phoneNumber 手机号码
     */
    void loadAllOrder(String phoneNumber);

    /**
     * 根据手机号获取第一个可以接的运单
     *
     * @param phoneNumber 手机号
     */
    void loadFirstAvailableOrder(String phoneNumber);

    /**
     * 根据运单号获取该运单的详细货物
     *
     * @param orderNo 运单号
     */
    void getOrderGoodsDetail(String orderNo);

    /**
     * 保存运单轨迹，app每隔一定时间就调用一下这个方法上传位置
     *
     * @param orderCode
     * @param driverTel 手机号
     * @param longitude
     * @param latiude
     * @param speed     速度
     * @param direction 方向
     * @param address   地址
     * @param province  省
     * @param city      市
     * @param area      区
     * @param remark    备注
     * @param active
     */
    void saveOrderRunningTrack(String orderCode, String driverTel, double longitude, double latiude, String speed, String direction, String address, String province, String city, String area, String remark, Character active);

    /**
     * 司机接单
     *
     * @param orderNo 订单号
     */
    void driverAcceptOrder(String orderNo);

    /**
     * 签到，不管是装货签到还是收货签到都是这个
     *
     * @param orderNo 运单号
     */
    void sign(String orderNo, double lat, double lng);

    /**
     * 点击确定
     * @param orderCode
     * @param driverTel
     * @param longitude
     * @param latiude
     * @param speed
     * @param direction
     * @param address
     * @param province
     * @param city
     * @param area
     * @param remark
     * @param active
     */
    void sign(String orderCode, String driverTel, double longitude, double latiude, String speed, String direction, String address, String province, String city, String area, String remark, Character active);

    /**
     * 判断司机是否在装货工厂装货，还是排队
     *
     * @param orderNo
     */
    void canDriverEnterToLoadGoods(String orderNo);

    /**
     * 判断司机是否在卸货工厂卸货，还是排队
     *
     * @param orderNo
     */
    void canDriverEnterToReceiptGoods(String orderNo);


    /**
     * 获取运单详细
     *
     * @param orderNumber 运单号
     * @param phoneNumber 手机号
     */
    void getOrderDetailByOrderNumberAndPhone(String orderNumber, String phoneNumber);

    /**
     * 获取运单详情
     * @param orderNumber 运单号
     */
    void getOrderDetailByOrderNumber(String orderNumber);

    /**
     * 判断是否真的能DC进厂
     * @param orderNumber
     */
    void getIfCanEnterDC(String orderNumber);

    /**
     * DC进厂
     * @param orderNumber
     */
    void dcEnterFactory(String orderNumber);

    void 叉车工装卸货操作(String orderNumber);

    void 叉车工判断是否能进行装货卸货(String orderNumber);

    @Deprecated
    void 获取运单可用的排班日期(String orderCode);

    @Deprecated
    void 获取运单可用的排班时间(String orderCode,String planDate);

    @Deprecated
    void 修改装货预约时间(String orderCode,String planDate,String startTime,String endTime);
}
